#ifndef CREATE_ENV_H
#define CREATE_ENV_H

#include "DarkGDK.h"
#define MAXVIS			8		// max vis areas

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
typedef struct tDoor
{
	int		type;
	int		distObj;
	int		leftObj;
	int		rightObj;
	float	leftStartX;
	float	rightStartX;
	float	leftCurrentX;
	float	rightCurrentX;
} tDoor;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

typedef struct tVis
{
	int		start;
	int		end;
	int		startObj;
	int		endObj;
} tVis;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


class Environment{
private:
	char*	czLevel[55];	// LEVEL DATA
	char*	cWayPointMap[55]; // Used for Waypoint Navigation
	char*	cRoutingTable[21];	// Directs to the next Waypoint
	int		objectCount;
	int		charNum;
	int		stringNum;
	char	cWayPoint;
	int		addFloor;
	int		lightNum; // can have 6 lights max in the level R, G or B
	int		shadow;
	int		baddieCount;
public:
	tDoor	door[20];
	tVis	vis[MAXVIS];
	int		visCount;
	int		currentVis;
	bool	doorSound;
	int		doorCount;
	void	useDefaultEnv();  // creates a default, hard-coded environment
	void	setupVis();		  // set up the visual volume
	void	showVis();		  // show the visual volume
	void	updateVis();	  // update the visual volume
	void	updateDoors();	  // update the doors in the environment
};
#endif